package com.snpic.appaw.module.insure.controller.app.carmessage.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "用户 APP - 车险报价-车辆信息新增/修改 Request VO")
@Data
public class AppCarMessageSaveReqVO {
	@Schema(description = "前端步骤")
	private  String setp;

	@Schema(description = "ID")
	private Long id;

	@Schema(description = "唯一流水号")
	private String sessionid;

	@Schema(description = "城市代码")
	@NotEmpty(message = "城市代码,必填")
	private String citycode;

	@Schema(description = "车辆Id")
	private String vehicleid;

	@Schema(description = "车辆品牌名称")
	private String vehicleBrand;

	@Schema(description = "车架号/VIN")
	private String rackNo;

	@Schema(description = "发动机号")
	private String engineNo;

	@Schema(description = "车辆购买价钱(含税)")
	private BigDecimal vehicleValue;

	@Schema(description = "车辆注册日期")
	private LocalDateTime registerDate;

	@Schema(description = "是否过户车")
	@NotNull(message = "是否过户车,必填")
	@JsonProperty("transfered")
	private Boolean transferFlag;

	@Schema(description = "过户日期")
	private LocalDateTime transferDate;

	@Schema(description = "车辆座位数")
	private Integer seats;

	@Schema(description = "引擎排量(升)")
	private String enginecapacity;

	//判断新能源?
	@Schema(description = "号牌种类，枚举")
	private String licensetype;

	@Schema(description = "车辆实际价值")
	private BigDecimal currentvalue;

	@Schema(description = "车型产地；0-国产，1-合资，2-进口")
	private String producingArea;

	@Schema(description = "车型行业代码")
	private String vehiclehyCode;

	@Schema(description = "总行驶里程（新增）")
	private String runMileRate;

	@Schema(description = "车款名称（新增）|车型别名")
	private String carName;

	@Schema(description = "精友-车辆编码（新增）|本地车型代码")
	private String jingyouVehicleCode;

	@Schema(description = "精友-车型名称（新增）|品牌型号")
	private String jingyouVehicleName;

	@Schema(description = "精友-车价（新增）")
	private String jingyouPrice;

	@Schema(description = "精友-车系（新增）")
	private String jingyouFamilyname;

	@Schema(description = "公告型号（新增）|车系编码")
	private String noticeType;

	@Schema(description = "外地车标识")
	private String ecDemicVehicleFlag;

	@Schema(description = "整备质量")
	private String wholeWeight;

	@Schema(description = "能源种类名称")
	private String fuelTypeName;

	@Schema(description = "车辆来历凭证种类名称")
	private String certificateTypeName;

	@Schema(description = "车辆来历凭证编号")
	private String certificateNo;

	@Schema(description = "开具车辆来历凭证所载日期")
	private LocalDateTime certificateDate;

	@Schema(description = "备注")
	private String remark;

	@Schema(description = "车牌号")
	@NotEmpty(message = "车牌号,必填")
	@JsonProperty("licensePlateNumber")
	private String licenseNo;

	@Schema(description = "价格类型")
	private String priceType;

	@Schema(description = "证件类型")
	private String certificateType;

	@Schema(description = "燃料类型")
	private String fuelType;

	@Schema(description = "原始oracle中的id，用于数据迁移")
	private Long oldId;

	@Schema(description = "选中状态1-选中，0-未选中")
	private Boolean selectStatus;

	@Schema(description = "ECustomerID")
	private Long customerId;

	@Schema(description = "车绑定添加车辆标志位,true-添加,false-(记得附上车主信息3项)")
	private Boolean vehicleInformationCreateFlag = false;

	@Schema(description = "是否车主,true-是，false-否")
	@NotNull(message = "是否车主,必填")
	private Boolean ownerStatus;

	@Schema(description = "车主证件类型,01-身份证")
	private String idType;

	@Schema(description = "车主证件号")
	private String idNo;

	@Schema(description = "车主姓名")
	@JsonProperty("carOwner")
	private String ownerName;

	@Schema(description = "投保地区")
	private String insuredArea;

	@Schema(description = "S3中，行驶证正面照片存储路径")
	private String vehicleLisenceUrl;

}